/*
 * Particion.h
 *
 *  Created on: 19/11/2011
 *      Author: nestor
 */

#ifndef PARTICION_H_
#define PARTICION_H_
#include "../../../estructuras/lista/Lista.h"
#include "../../../Util/Configuracion.h"
#include "../../../Util/Util.h"
#include <iostream>
#include <iomanip>
#include <fstream>
#include <sstream>
#include <stdio.h>
#include "../InfoTerminoIndexado.h"

#define TAM_ID_TERM   10
#define TAM_CANT_DOCS 10
#define TAM_OFFSET 	  10


#define  P_OUT 			0
#define  P_READ 		1


struct tTermInfoBuffer {
	unsigned long id;
	unsigned long cantDoc;
	unsigned long offset;
};


class Particion {

private:
	std::fstream fd;


public:
	Particion();
	Particion(std::string ruta, int mode);
	int persistir(InfoTerminoIndexado* terminoInfo);
	int persistir(unsigned long idTerm, unsigned long cantDoc, Lista<Frecuencia_por_IdDoc*>* listaFreIdDoc);
	/*
	 * Indica si la lectura o escritura fue realizada correctamente
	 * */
	bool good();
	bool eof();
	tTermInfoBuffer siguiente();

	virtual ~Particion();
};

#endif /* PARTICION_H_ */
